<!DOCTYPE html>
<html lang="en">

<!--
  Author：蓝田_Loto
  Date：2019-09-18 10:43
  PageName：k_jsRegExp.html
  Function：js的正则对象
-->

<head>
    <meta charset="UTF-8">
    <title>js的正则对象</title>

    <script type="text/javascript">
        /* 1、正则的创建 */
        /* 方式1：new RegExp("规则","属性") */
        var reg1 = new RegExp("java", "img");

        /* 方式2：/规则/属性 */
        /*
        []的含义：
            \d  ==  [0-9] 任意一个数字
            \D  ==  [^0-9] 任意一个非数字
            [a-z]任意一个小写字母
            [A-Z]任意一个大写字母
            [a-d] 从a到d之间的任意一个字母，包括ad
            [ad] a或任意一个
            \w  ==  [a-zA-Z0-9_]表示任意一个字母、数字或_
            \W  ==  [^a-zA-Z0-9_]表示任意一个非字母、数字或_

        量词：（X表示一个字符）
            * 匹配前一项0到多次  X >= 0
            + 匹配前一项1到多次  X > 0
            ？ 匹配前一项0或1次  X == 0 || X==1
            {n}:匹配前一项n次
            {n,}:匹配前一项最少n次，最多不限
            {n,m}:匹配前一项最少n次，最多m次
        */
        var reg2 = /^java\d{2,5}\w*script$/gim;

        /* 2、正则的方法 */
        var str = "java1123scriptJava232scriptIdeaJavascript";

        /* exec：检索字符串中指定的值（返回找到的值，没找到返回null）*/
        /* test：检索字符串中指定的值（返回 true 或 false）*/
        var s1 = reg2.exec(str);
        var s2 = reg2.exec(str);
        var s3 = reg2.exec(str);

        document.write(s1 + "<br>");
        document.write(s2 + "<br>");
        document.write(s3 + "<br>");
    </script>
</head>

<body>

</body>
</html>